<?php
	/**
	 * Arquivo: administracao.inc
	 * @package Default
	 * @sub-package ADM
	 * @page-level 1
	 */
	/**
	 * Classe de administração do sistema
	 * @package Default
	 * @return void
	 */
	class ADM extends BANCOS
		{
		/**
		 * Identificação do usuário
		 * @access private
		 * @var integer
		 */
		private $id_user;
		/**
		 * Nível de Acesso do usuário
		 * @access private
		 * @var integer
		 */
		private $nivel;
		/**
		 * Níveis de Acesso
		 * @access private
		 * @var integer[]
		 */
		private $niveis;
		/**
		 * Acesso a Classe FORMATAR
		 * @access private
		 * @var FORMATAR
		 */
		private $forma;
		/**
		 * Prazo para aviso do sistema
		 * @access private
		 * @var integer
		 */
		private $aviso;
		
		/**
		 * Construtor da Classe ADM
		 * @param integer $id_user Identificação do usuário
		 * @param integer $nivel Nível de acesso ao sistema do usuário
		 *
		 * @return void
		 */
		public function __construct($id_user, $nivel)
			{
			$this->id_user = substr($id_user,2,strlen($id_user));
			$this->nivel = substr($nivel,2,strlen($nivel));
			$this->niveis = array("Administrador","Escola","Cliente");
			$this->forma = new FORMATAR();
			parent::__construct();
			$this->exec_query("select validade from configuracao");
			$this->aviso = $this->retorno[1][0][0];
			}
		/**
		 * Destrutor da Classe ADM
		 *
		 * @return void
		 */
		public function __destruct()
			{
			}
		/**
		 * Método que gera o menu principal do sistema
		 *
		 * @return void
		 */
		public function MenuPrincipal()
			{
			echo('<nav id="menu">');
			echo("<ul>\n");
			echo("  <li><a href=\"#\" onclick=\"javascript:pegar('conteudo.php?id=1',escrever,'conteudo','msg');\">Minha Conta</a></li>\n");
			switch($this->nivel) 
				{
				case 0:
					{
					echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('conteudo.php?id=2',escrever,'conteudo','msg');\">Usuários</a></li>\n");
					echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('conteudo.php?id=3',escrever,'conteudo','msg');\">Escolas</a></li>\n");
					echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('conteudo.php?id=4',escrever,'conteudo','msg');\">Empresas</a></li>\n");
					echo ("  <li><ul>");
					echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('conteudo.php?id=5',escrever,'conteudo','msg');\">Funcionários</a></li>\n");
					echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('conteudo.php?id=6',escrever,'conteudo','msg');\">Setores</a></li>\n");
					echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('conteudo.php?id=7',escrever,'conteudo','msg');\">Funções</a></li>\n");
					echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('conteudo.php?id=8',escrever,'conteudo','msg');\">Treinamentos</a></li>\n");
					echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('conteudo.php?id=9',escrever,'conteudo','msg');\">Programas</a></li>\n");
					echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('conteudo.php?id=13',escrever,'conteudo','msg');\">Atividades</a></li>\n");
					echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('conteudo.php?id=10&pagina=0',escrever,'conteudo','msg');\">CNAE</a></li>\n");
					echo ("  </ul></li>\n");
					echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('conteudo.php?id=12',escrever,'conteudo','msg');\">Relatórios</a></li>\n");
					echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('conteudo.php?id=11',escrever,'conteudo','msg');\">Configurações</a></li>\n");
					break;
					}
				case 1:
					{
					echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('conteudo.php?id=3',escrever,'conteudo','msg');\">Escolas</a></li>\n");
					echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('conteudo.php?id=4',escrever,'conteudo','msg');\">Empresas</a></li>\n");
					break;
					}
				case 2:
					{
					echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('conteudo.php?id=4',escrever,'conteudo','msg');\">Empresas</a></li>\n");
					break;
					}
				}
			echo("</ul>\n");	
			echo("</nav>\n");
			}
		/**
		 * Método que gera o menu interno do sistema
		 *
		 * @return void
		 */
		public function MenuInterno()
			{
			echo ("<ul>\n");
			echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('contas/conteudo.php?subid=1',escrever,'conteudo_interno','msg');\">Listar</a></li>\n");
			echo ("  <li><a href=\"#\" onclick=\"javascript:pegar('contas/conteudo.php?subid=2',escrever,'conteudo_interno','msg');\">Incluir</a></li>\n");
			echo ("</ul>\n");
			}
		/**
		 * Método que mostra a conta do usuário logado ou selecionado.
		 *
		 * @param integer $id_user código do usuário na base de dados
		 *
		 * @return void
		 */
		public function minha_conta($id_user)
			{
			if ($id_user == 0)
				{
				$id_user = $this->id_user;
				}
			$sql = "select * from cadastro.usuario where id_user=".$id_user;
			$this->exec_query($sql);
			if ($this->retorno[0])
				{
				$dados = $this->retorno[1][0];
				echo ("Dados do usuário Logado\n");
				echo ("<form action=\"contas/processar.php\" method=\"POST\" id=\"frm_conta\">\n");
				echo ("<input type=\"hidden\" name=\"id\" id=\"id\" value=\"".$_GET['id']."\" />\n");
				echo ("<input type=\"hidden\" name=\"op\" id=\"op\" value=\"2\" />\n");
				echo ("<input type=\"hidden\" name=\"id_user\" id=\"id_user\" value=\"".$id_user."\" />\n");
				echo ("<input type=\"hidden\" name=\"nome_ant\" id=\"nome_ant\" value=\"".$dados[1]."\" />\n");
				echo ("Nome: <input type=\"text\" maxlength=\"100\" size=\"40\" id=\"nome\" name=\"nome\" value=\"".$dados[1]."\" />\n<br/>\n");
				echo ("<input type=\"hidden\" name=\"email_ant\" id=\"email_ant\" value=\"".$dados[2]."\" />\n");
				echo ("E-Mail: <input type=\"text\" maxlength=\"200\" size=\"40\" id=\"email\" name=\"email\" value=\"".$dados[2]."\" />\n<br/>\n");
				echo ("<input type=\"hidden\" name=\"usuario_ant\" id=\"usuario_ant\" value=\"".$dados[3]."\" />\n");
				echo ("Usuário: <input type=\"text\" maxlength=\"20\" size=\"20\" id=\"usuario\" name=\"usuario\" value=\"".$dados[3]."\" />\n");
				echo ("<input type=\"button\" id=\"senha\" name=\"senha\" value=\"Mudar Senha\" onclick=\"javascript:pegar('contas/senha.php?modo=1&user=".$id_user."',escrever,'m_senha','msg');\" />\n<br/>\n");
				echo ("<input type=\"button\" id=\"alterar\" name=\"alterar\" value=\"Alterar Dados\" onclick=\"altera();\" />\n");
				echo ("<input type=\"button\" id=\"salvar\" name=\"salvar\" value=\"Salvar Dados\" onclick=\"javascript:pegarForm_POST('res_conta','frm_conta','msg');\" />\n");
				echo ("</form>\n");
				echo ("<div id=\"res_conta\"></div>\n");
				echo ("<script type=\"text/javascript\">\n");
				echo ("	<!--\n");
				echo ("		document.getElementById(\"nome\").disabled = true;\n");
				echo ("		document.getElementById(\"email\").disabled = true;\n");
				echo ("		document.getElementById(\"usuario\").disabled = true;\n");
				echo ("		document.getElementById(\"alterar\").disabled = false;\n");
				echo ("		document.getElementById(\"salvar\").disabled = true;\n");
				echo ("		function altera()\n");
				echo ("			{\n");
				echo ("			document.getElementById(\"nome\").disabled = false;\n");
				echo ("			document.getElementById(\"email\").disabled = false;\n");
				echo ("			document.getElementById(\"usuario\").disabled = false;\n");
				echo ("			document.getElementById(\"alterar\").disabled = true;\n");
				echo ("			document.getElementById(\"salvar\").disabled = false;\n");
				echo ("			}\n");
				echo ("	//-->\n");
				echo ("</script>\n");
				echo ("<div id=\"m_senha\"></div>\n");
				}
			}
		/**
		 * Método para cadastramento de um novo usuário no sistema.
		 *
		 * @return void
		 */
		public function novo()
			{
			if ($this->nivel == 0)
				{
				echo ("<form action=\"contas/processar.php\" method=\"POST\" id=\"frm_conta\">\n");
				echo ("<input type=\"hidden\" name=\"id\" id=\"id\" value=\"2\" />\n");
				echo ("<input type=\"hidden\" name=\"op\" id=\"op\" value=\"1\" />\n");
				echo ("Nome: <input type=\"text\" maxlength=\"100\" size=\"40\" id=\"nome\" name=\"nome\" />\n<br/>\n");
				echo ("E-Mail: <input type=\"text\" maxlength=\"200\" size=\"40\" id=\"email\" name=\"email\" />\n<br/>\n");
				echo ("Usuário: <input type=\"text\" maxlength=\"20\" size=\"20\" id=\"usuario\" name=\"usuario\" />\n");
				echo ("Senha: <input type=\"password\" maxlength=\"10\" size=\"20\" id=\"senha\" name=\"senha\" />\n<br/>\n");
				echo ("Nível de Acesso: <select name=\"nivel\" id=\"nivel\" onchange=\"javascript:pegar('contas/entidade.php?nivel='+document.getElementById('nivel').value,escrever,'ligacao','msg');\">\n");
				echo ("<option>---</option>\n");
				for ($i=0; $i < 3; $i++)
					{
					echo ("<option value=\"$i\">".$this->niveis[$i]."</option>\n");
					}
				echo ("</select>\n<br/>\n");
				echo ("<span id=\"ligacao\"></span>\n");
				echo ("<input type=\"button\" value=\"Inserir\" onclick=\"javascript:pegarForm_POST('conteudo_interno','frm_conta','msg');\" />\n");
				echo ("</form>\n");
				}
			else 
				{
				echo ("Nível de usuário sem permissão para essa ação.\n");
				}
			}
		/**
		 * Método que insere o novo usuário na base de dados.
		 *
		 * @param mixed[] $dados
		 *
		 * @return void
		 */
		public function inserir_conta($dados)
			{
			if ($this->nivel == 0)
				{
				$sql = "insert into cadastro.usuario (nome,e_mail,usuario,senha,nivel) values('";
				$sql .= $dados['nome']."','";
				$sql .= $dados['email']."','";
				$sql .= $dados['usuario']."',md5('";
				$sql .= $dados['senha']."'),";
				$sql .= $dados['nivel'].");";
				$this->exec_query($sql);
				return $this->retorno[0];
				}
			else 
				{
				return false;
				}
			}
		/**
		 * Método que salva alteração de dados de um usuário
		 *
		 * @param mixed[] $dados
		 *
		 * @return void
		 */
		public function alterar_conta($dados)
			{
			$sql = "update cadastro.usuario set nome='";
			$sql .= $dados['nome']."', e_mail='";
			$sql .= $dados['email']."', usuario='";
			$sql .= $dados['usuario']."' where id_user=".$dados['id_user'];
			$this->exec_query($sql);
			if ($this->retorno[0])
				{
				return true;
				}
			else 
				{
				return false;
				}
			}
		/**
		 * Método que imprime o valor de BANCO::msg_sistema
		 *
		 * @return void
		 */
		public function mensagem()
			{
			echo ("Erro na execução do SQL: ");
			echo ($this->msg_sistema);
			}
		/**
		 * Método para listar usuários cadastrados no sistemas
		 *
		 * @return void
		 */
		public function listar_contas()
			{
			$sql = "select * from cadastro.usuario order by nome";
			$this->exec_query($sql);
			if ($this->retorno[0])
				{
				echo ("<table summary=\"contas de usuários\" width=\"100%\" border=\"1\" cellspacing=\"0\">\n");
				echo ("<tr>\n");
				echo ("<th>Id</th>\n<th>Nome</th>\n<th>E-Mail</th>\n<th>Usuário</th>\n<th>Senha</th>\n<th>Nível</th>\n<th>Ligação</th>\n");
				echo ("</tr>\n");
				for ($i=0; $i < $this->num_registros; $i++)
					{
					$dados = $this->retorno[1][$i];
					echo ("<tr>\n");
					echo ("<td>".$dados[0]."</td>\n");
					echo ("<td>".$dados[1]."</td>\n");
					echo ("<td>".$dados[2]."</td>\n");
					echo ("<td>".$dados[3]."</td>\n");
					echo ("<td><input type=\"button\" name=\"senha\" id=\"senha\" value=\"Resetar Senha\" onclick=\"javascript:pegar('contas/senha.php?modo=3&user=".$dados[0]."',escrever,'res_senha','msg');\" /></td>\n");
					echo ("<td>".$this->niveis[$dados[5]]."</td>\n");
					echo ("<td>".$dados[6]."</td>\n");
					echo ("<td><a href=\"#\" onclick=\"javascript:pegar('contas/conteudo.php?id=2&subid=3&id_user=".$dados[0]."',escrever,'conteudo_interno','msg');\">Alterar</a></td>\n");
					echo ("<td><a href=\"#\" onclick=\"\">Deletar</a></td>\n");
					echo ("</tr>\n");
					}
				echo ("</table>\n");
				echo ("<b>Número de Usuários: ".$this->num_registros."</b>\n");
				echo ("<div id=\"res_senha\"></div>\n");
				}
			}
		/**
		 * Método para mostrar as configurações básicas do sistema, juntamente com os últimos 10 registros dos logs.
		 *
		 * @return void
		 */
		public function configuracoes()
			{
			echo ("<center><b>Configurações gerais do sistema</b></center>\n");
			$sql = "select configuracao.*, programas.descricao, treinamento.descricao from configuracao inner join cadastro.programas on configuracao.programa=programas.id_programa inner join cadastro.treinamento on configuracao.treinamento=treinamento.id_treinamento where id=1";
			//echo ($sql);
			$this->exec_query($sql);
			if ($this->retorno[0])
				{
				$dados = $this->retorno[1][0];
				echo ("Prazo Validade padrão<span onclick=\"javascript:pegar('configuracao.php?id=1&op=1',escrever,'val_adm','msg');\">:</span> <b><span id=\"val_adm\" >".$dados[1]."</span></b>\n<br/>\n");
				echo ("Prazo Aviso padrão<span onclick=\"javascript:pegar('configuracao.php?id=2&op=1',escrever,'aviso_pra','msg');\">:</span> <b><span id=\"aviso_pra\">".$dados[2]."</span></b>\n<br/>\n");
				echo ("Paginação padrão<span onclick=\"javascript:pegar('configuracao.php?id=3&op=1',escrever,'pag_pra','msg');\">:</span> <b><span id=\"pag_pra\">".$dados[3]."</span></b>\n<br/>\n");
				echo ("Data Criação do Sistema: <b>".$this->forma->data_conv($dados[4])."</b>\n<br/>\n");
				echo ("Data da última atualização do Sistema: <b><span id=\"atual_data\" onclick=\"javascript:pegar('configuracao.php?id=4&op=2&data_ant=".$dados[5]."&data_data=".date('Y-m-d')."',escrever,'atual_data','msg');\">".$this->forma->data_conv($dados[5])."</span></b>\n<br/>\n");
				echo ("Desenvolvedores: <b>".$dados[6]."</b>\n<br/>\n");
				echo ("E-mail Administrativo: <b>".$dados[7]."</b>\n<br/>\n");
				//echo ("Programa monitorado<span onclick=\"javascript:pegar('configuracao.php?id=5&op=1&cod_ant=".$dados[8]."',escrever,'programa_mon','msg');\">:</span> <b><span id=\"programa_mon\">".$dados[8]." - ".$dados[10]."</sṕan></b>\n<br/>\n");
				//echo ("Treinamento monitorado<span  onclick=\"javascript:pegar('configuracao.php?id=6&op=1&cod_ant=".$dados[8]."',escrever,'treinamento_mon','msg');\">:</span> <b><span id=\"treinamento_mon\">".$dados[9]." - ".$dados[11]."</sṕan></b>\n<br/>\n");
				}
			else
				{
				echo ($this->msg_sistema);
				}
			echo ("<div id=\"div_log\">\n");
			$sql = "select * from logs order by tempo desc limit 10 offset 0";
			echo ("<label>Logs do Sistema</label><br/>");
			$this->exec_query($sql);
			if ($this->retorno[0])
				{
				for ($i=0; $i < $this->num_registros; $i++)
					{
					$dados = $this->retorno[1][$i];
					echo (date('d\/m\/Y - H:m:s', $dados[0]));
					echo (" - ".$dados[1]." - ".$dados[2]." - ".$dados[3]." - ".$dados[4]);
					echo ("</br>\n");
					}
				}
			else
				{
				echo ($this->msg_sistema);
				}
			echo ("</div>\n");
			}
		/**
		 * Método usado para mostrar o Status atual do sistema.
		 *
		 * @return void
		 */
		public function status_geral()
			{
			if ($this->nivel <= 1)
				{
				echo ("<label>Programas</label>\n");
				$sql = "select programas.descricao, entidade.razao, programa_entidade.data_validade, programas.aviso, (date(programa_entidade.data_validade) - date('".date('Y-m-d')."')) as avisos from cadastro.entidade inner join programa.programa_entidade on entidade.id_ent=programa_entidade.id_entidade inner join cadastro.programas on programas.id_programa=programa_entidade.id_programa where programa_entidade.status order by avisos";
				$this->exec_query($sql);
				if ($this->num_registros > 0)
					{
					echo ("<table summary=\"\">\n");
					echo ("<tr>\n<th>Programa</th>\n<th>Entidade</th>\n<th>Validade</th>\n<th>Faltam</th>\n</tr>\n");
					for ($i=0; $i < $this->num_registros; $i++)
						{
						$dados = $this->retorno[1][$i];
						$data = date('Y-m-d');
						$prazo = $dados[4];
						if ($prazo <= $dados[3])
							{
							echo ("<tr class=\"aviso\">\n");
							}
						else 
							{
							echo ("<tr>\n");
							}
						echo ("<td>".$dados[0]."</td>\n");
						echo ("<td>".$dados[1]."</td>\n");
						echo ("<td>".$this->forma->data_conv($dados[2])."</td>\n");
						echo ("<td>".$prazo."</td>\n");
						echo ("</tr>\n");
						}
					echo ("</table>\n");
					}
				echo ("<label>Treinamentos</label>\n");
				$sql = "select treinamento.descricao, entidade.razao, funcionario.nome, trein_func.data_validade, (date(trein_func.data_validade) - date('".date('Y-m-d')."')) as aviso from ";
				$sql .= "cadastro.entidade inner join entidade.emp_func on entidade.id_ent=emp_func.id_entidade inner join ";
				$sql .= "cadastro.funcionario on funcionario.id_fun=emp_func.id_funcionario inner join treinamento.trein_func on funcionario.id_fun=trein_func.id_funcionario ";
				$sql .= " inner join cadastro.treinamento on trein_func.id_treinamento=treinamento.id_treinamento where trein_func.status group by treinamento.descricao, entidade.razao, funcionario.nome, trein_func.data_validade, aviso order by aviso";
				$this->exec_query($sql);
				if ($this->num_registros > 0)
					{
					echo ("<table summary=\"\">\n");
					echo ("<tr>\n<th>Treinamento</th>\n<th>Entidade</th>\n<th>Funcionário</th>\n<th>Validade</th>\n<th>Faltam</th>\n</tr>\n");
					for ($i=0; $i < $this->num_registros; $i++)
						{
						$dados = $this->retorno[1][$i];
						$data = date('Y-m-d');
						$prazo = $dados[4];
						if ($prazo <= $this->aviso)
							{
							echo ("<tr class=\"aviso\">\n");
							}
						else 
							{
							echo ("<tr>\n");
							}
						echo ("<td>".$dados[0]."</td>\n");
						echo ("<td>".$dados[1]."</td>\n");
						echo ("<td>".$dados[2]."</td>\n");
						echo ("<td>".$this->forma->data_conv($dados[3])."</td>\n");
						echo ("<td>".$prazo."</td>\n");
						echo ("</tr>\n");
						}
					echo ("</table>\n");
					}
				echo ("<label>Cadastros</label>\n");
				$sql = "select razao, data_atualizacao, (date(data_atualizacao) - date('".date('Y-m-d')."')) as aviso from cadastro.entidade order by aviso";
				$this->exec_query($sql);
				if ($this->num_registros > 0)
					{
					echo ("<table summary=\"\">\n");
					echo ("<tr>\n<th>Entidade</th>\n<th>Última Atualização</th>\n<th>Tempo</th>\n</tr>\n");
					for ($i=0; $i < $this->num_registros; $i++)
						{
						$dados = $this->retorno[1][$i];
						echo ("<tr>\n");
						echo ("<td>".$dados[0]."</td>\n");
						echo ("<td>".$this->forma->data_conv($dados[1])."</td>\n");
						$data = date('Y-m-d');
						$prazo = $this->forma->Dias($data,$dados[1]);
						echo ("<td>".$prazo."</td>\n");
						echo ("</tr>\n");
						}
					echo ("</table>\n");
					}
				echo ("<label>Atestado de Saúde Ocupacional</label>\n");
				$sql = "select entidade.razao, funcionario.nome, tp_aso.descricao, aso_func.data_validade, (date(aso_func.data_validade) - date('".date('Y-m-d')."')) as aviso from cadastro.entidade inner join treinamento.aso_func on entidade.id_ent=aso_func.id_entidade inner join cadastro.funcionario on funcionario.id_fun=aso_func.id_funcionario inner join cadastro.tp_aso on tp_aso.id=aso_func.id_aso where not renovado order by aviso";
				$this->exec_query($sql);
				if ($this->num_registros > 0)
					{
					echo ("<table summary=\"\">\n");
					echo ("<tr>");
					echo ("<th>Empresa</th><th>Funcionário</th><th>Tipo</th><th>Data Validade</th><th>Prazo</th>");
					echo ("</tr>");
					for ($i=0; $i < $this->num_registros; $i++)
						{
						$prog_data = $this->retorno[1][$i];
						if ($prog_data[4] <= $this->aviso)
							{
							echo ("<tr class=\"aviso\">\n");
							}
						else 
							{
							echo ("<tr>\n");
							}
						echo ("<td>".$prog_data[0]."</td>");
						echo ("<td>".$prog_data[1]."</td>");
						echo ("<td>".$prog_data[2]."</td>");
						echo ("<td>".$this->forma->data_conv($prog_data[3])."</td>");
						echo ("<td>".$prog_data[4]."</td>");
						echo ("</tr>");
						}
					echo ("</table>\n");
					}
				}
			}
		/**
		 * Método utilizado para salvar a alteração de senha do usuário logado.
		 *
		 * @param mixed[] $dados
		 *
		 * @return void
		 */
		public function alterar_senha ($dados) 
			{
			$sql = "update cadastro.usuario set senha=md5('".$dados['senha']."') where id_user=".$dados['user'];
			//echo ($sql);
			$this->exec_query($sql);
			if (!$this->retorno[1])
				{
				echo ("Senha alterada com sucesso!");
				}
			else 
				{
				echo ($this->msg_sistema);
				}
			}
		/**
		 * Método administrativo para gerar nova senha para usuário já cadastrado.
		 *
		 * @param integer $id_user código do usuário
		 *
		 * @return void
		 */
		public function resetar_senha($id_user) 
			{
			$Caracteres = "abcdefghijklmnopqrstuvxywzABCDEFGHIJKLMNOPQRSTUVXYWZ0123456789$%&";
			$MAX = strlen($Caracteres) - 1;
			$password = "";
			for ($i=0; $i < 10; $i++)
				{
				$password .= $Caracteres{mt_rand(0, $MAX)};
				}
			echo ("Nova Senha: ".$password);
			$sql = "update cadastro.usuario set senha=md5('".$password."') where id_user=".$id_user;
			$this->exec_query($sql);
			}
		/**
		 * Método que habilita mudança de dados da configuração básica do sistema
		 *
		 * @param integer $id identificação do dado a ser mudado.
		 *
		 * @return void
		 */
		public function mudar_conf($id) 
			{
			switch($id) 
				{
				case 1:
					{
					$sql = "select validade from configuracao where id=1";
					$this->exec_query($sql);
					$dado = $this->retorno[1][0][0];
					echo ("<input type=\"text\" name=\"val_data\" id=\"val_data\" value=\"".$dado."\" size=\"5\" />\n");
					echo ("<input type=\"button\" value=\"Gravar\" onclick=\"javascript:pegar('configuracao.php?id=1&op=2&val_ant=".$dado."&val_data='+document.getElementById('val_data').value,escrever,'val_adm','msg');\" />\n");
					break;
					}
				case 2:
					{
					$sql = "select aviso from configuracao where id=1";
					$this->exec_query($sql);
					$dado = $this->retorno[1][0][0];
					echo ("<input type=\"text\" name=\"aviso_data\" id=\"aviso_data\" value=\"".$dado."\" size=\"5\" />\n");
					echo ("<input type=\"button\" value=\"Gravar\" onclick=\"javascript:pegar('configuracao.php?id=2&op=2&aviso_ant=".$dado."&aviso_data='+document.getElementById('aviso_data').value,escrever,'aviso_pra','msg');\" />\n");
					break;
					}
				case 3:
					{
					$sql = "select paginacao from configuracao where id=1";
					$this->exec_query($sql);
					$dado = $this->retorno[1][0][0];
					echo ("<input type=\"text\" name=\"pag_data\" id=\"pag_data\" value=\"".$dado."\" size=\"5\" />\n");
					echo ("<input type=\"button\" value=\"Gravar\" onclick=\"javascript:pegar('configuracao.php?id=3&op=2&pag_ant=".$dado."&pag_data='+document.getElementById('pag_data').value,escrever,'pag_pra','msg');\" />\n");
					break;
					}
				case 5:
					{
					$sql = "select * from cadastro.programas order by descricao";
					$this->exec_query($sql);
					echo ("<select name=\"cod_data\" id=\"cod_data\">\n");
					for ($i=0; $i < $this->num_registros; $i++)
						{
						$dados = $this->retorno[1][$i];
						if ($_GET['cod_ant'] == $dados[0])
							{
							echo ("<option value=\"".$dados[0]."\" selected>".$dados[1]."</option>\n");
							}
						else 
							{
							echo ("<option value=\"".$dados[0]."\">".$dados[1]."</option>\n");
							}
						}
					echo ("</select>\n");
					echo ("<input type=\"button\" value=\"Gravar\" onclick=\"javascript:pegar('configuracao.php?id=5&op=2&cod_ant=".$_GET['cod_ant']."&cod_data='+document.getElementById('cod_data').value,escrever,'programa_mon','msg');\" />\n");
					break;
					}
				case 6:
					{
					$sql = "select * from cadastro.treinamento order by descricao";
					$this->exec_query($sql);
					echo ("<select name=\"cod_data\" id=\"cod_data\">\n");
					for ($i=0; $i < $this->num_registros; $i++)
						{
						$dados = $this->retorno[1][$i];
						if ($_GET['cod_ant'] == $dados[0])
							{
							echo ("<option value=\"".$dados[0]."\" selected>".$dados[1]."</option>\n");
							}
						else 
							{
							echo ("<option value=\"".$dados[0]."\">".$dados[1]."</option>\n");
							}
						}
					echo ("</select>\n");
					echo ("<input type=\"button\" value=\"Gravar\" onclick=\"javascript:pegar('configuracao.php?id=6&op=2&cod_ant=".$_GET['cod_ant']."&cod_data='+document.getElementById('cod_data').value,escrever,'treinamento_mon','msg');\" />\n");
					break;
					}
				}
			}
		/**
		 * Método que salva alteração de dados da configuração básica do sistema
		 *
		 * @param mixed[] $dados
		 *
		 * @return void
		 */
		public function salvar_conf($dados)
			{
			switch($dados['id']) 
				{
				case 1:
					{
					$sql = "update configuracao set validade=".$dados['val_data']." where id=1";
					break;
					}
				case 2:
					{
					$sql = "update configuracao set aviso=".$dados['aviso_data']." where id=1";
					break;
					}
				case 3:
					{
					$sql = "update configuracao set paginacao=".$dados['pag_data']." where id=1";
					break;
					}
				case 4:
					{
					$sql = "update configuracao set data_atualizacao='".$dados['data_data']."' where id=1";
					break;
					}
				case 5:
					{
					$sql = "update configuracao set programa=".$dados['cod_data']." where id=1";
					break;
					}
				case 6:
					{
					$sql = "update configuracao set treinamento=".$dados['cod_data']." where id=1";
					break;
					}
				}
			//echo ($sql);
			$this->exec_query($sql);
			//echo ($this->msg_sistema);
			echo ("<script type=\"text/javascript\" >\n");
			echo ("	<!--\n");
			echo ("		pegar('conteudo.php?id=11',escrever,'conteudo','msg');\n");
			echo ("	//-->\n");
			echo ("</script>\n");
			}
		};//ADM
	/**
	 * Classe de Controle de Logs do sistema.
	 * @return void
	 */
	class LOGS extends BANCOS
		{
		/**
		 * Código da ação que será executada sobre os Logs.
		 * @access private
		 * @var integer
		 */
		private $acao;
		/**
		 * Dados a serem inseridos nos Logs
		 * @access private
		 * @var mixed[]
		 */
		private $dados;
		/**
		 * Construtor da Classe LOGS
		 * @param integer $acao código da ação a ser executada sobre os Logs.
		 * @param mixed[] $dados Dados a serem gravados nos Logs.
		 * @return void
		 */
		public function __construct($acao,$dados)
			{
			$this->acao = $acao;
			$this->dados = $dados;
			parent::__construct();
			$this->logs();
			}
		/**
		 * Destrutor da Classe LOGS
		 * @return void
		 */
		public function __destruct()
			{
			}
		/**
		 * Método que salva os $dados na base de dados.
		 * @return void
		 */
		private function logs()
			{
			$tempo = time();
			switch($this->acao)
				{
				case 0:
					{
					//Login ERROR
					$sql = "insert into logs values(".$tempo.",'Erro de Login',null,'".$this->dados[0]."','".$this->dados[1]."')";
					break;
					}
				case 1:
					{
					//Login 
					$sql = "insert into logs values(".$tempo.",'Login',".substr($this->dados[2],2,strlen($this->dados[2])).",'".$this->dados[0]."','".$this->dados[1]."')";
					break;
					}
				case 2:
					{
					//Logout 
					$sql = "insert into logs values(".$tempo.",'Logout',".substr($this->dados[2],2,strlen($this->dados[2])).",'".$this->dados[0]."','".$this->dados[1]."')";
					break;
					}
				case 3:
					{
					//Insersão
					$sql = "insert into logs values(".$tempo.",'Insersão',".substr($this->dados[2],2,strlen($this->dados[2])).",'".$this->dados[0]."','".$this->dados[1]."')";
					break;
					}
				case 4:
					{
					//Atualização
					$sql = "insert into logs values(".$tempo.",'Atualização',".substr($this->dados[2],2,strlen($this->dados[2])).",'".$this->dados[0]."','".$this->dados[1]."')";
					break;
					}
				}
			//echo ($sql."</br>\n");
			$this->exec_query($sql);
			}
		};//LOGS
?>